﻿Public Class GebaeudeMinigeschuetz_S
    Inherits ObjektGebaeude

    Public Sub New(ByVal neuSpieler As Integer, ByVal neuX As Integer, ByVal neuY As Integer, ByVal Spielfeld As ObjektSpielfeld)
        MyBase.New("MINIGESCHUETZ+S", neuSpieler, neuX, neuY, ObjektSpielfeld.Bodenschlacht)
        GebaeudeLaden()
        getBildID(Spielfeld)
    End Sub
    Public Sub New(ByVal neuSpieler As Integer, ByVal neuLeben As Integer, ByVal neuBesetzungszahl As Integer, ByVal neuX As Integer, ByVal neuY As Integer, ByVal Feuerzahl As Integer, ByVal Spielfeld As ObjektSpielfeld)
        MyBase.New("MINIGESCHUETZ+S", neuSpieler, neuLeben, neuBesetzungszahl, neuX, neuY, Feuerzahl, ObjektSpielfeld.Bodenschlacht)
        GebaeudeLaden()
        getBildID(Spielfeld)
    End Sub

    Private Sub GebaeudeLaden()
        Gebaeudename = "Minigeschuetz"
        getFonds = False
        Deckung = 0
        Bestzunge = -1
        Schaden = 3
        Reichweite = 4
        Rechteck.Height = Hauptmenue.Feldbreite * 2
        Rechteck.Width = Hauptmenue.Feldbreite
        Angriff = Angriffe.SchussS
        If Spieler = 0 Then
            Leben = -1
        Else
            Select Case DataSettings.CommanderWarsGameModus
                Case CommanderWarsGameModi.CommanderWars2, CommanderWarsGameModi.CommanderWars
                    Leben = 200
                Case Else
                    Leben = 99
            End Select
        End If
        Feuerbereite = 1
        Feuerladung = 1
        RotationsZenturm = New Point(Hauptmenue.Feldbreite / 2, Hauptmenue.Feldbreite)
        WirdZu = "EBENE+SCHROTT"
    End Sub
    Public Overrides Function GetMaxLeben() As Integer
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.CommanderWars2, CommanderWarsGameModi.CommanderWars
                If Leben > 200 Then Return Leben
                Return 200
            Case Else
                If Leben > 99 Then Return Leben
                Return 99
        End Select
    End Function
    Public Overrides Sub Feuer(ByVal X As Integer, ByVal Y As Integer)
        If DataSettings.KonsolenSpielBefehle Then
            Konsole.Write("Fire with a Mini Canon.")
        End If
        Dim M As ObjektSpielMenue = Objektverwalter.Menue
        GenerateNetzBefehlGebaeudeFeuer(X, Y)
        DoDamage(X, Y)
        BackbufferSpiel.AddAnimation("Geschuetzfeuer", 2, New Point(X, Y), True, ObjektSpielfeld.Bodenschlacht)
        Feuerbereit = -1
        Objektverwalter.Spielfeld.Regeln.CheckSieg()
        M.Spielmodus = ObjektSpielMenue.Spielmodi.Nichts
    End Sub
    Public Overrides Sub FeuerradiusAnzeigen()
        Dim M As ObjektSpielMenue = Objektverwalter.Menue
        Geschuetzfeuermarkieren()
        MusikEngine.LoadWav(DataSettings.Resourcenpfad + "Sound\Sound Effects\Overworld\Einheitausgewaehlt.wav", False)
        M.Spielmodus = ObjektSpielMenue.Spielmodi.FeuerradiusAnzeigen
    End Sub
    Public Overrides Sub DOSpielFrame()
        Feuerbereit = 1
    End Sub
    Public Overrides Function GetLandschaftsuntergrund() As String()
        Return New String() {"EBENE", "SCHNEE", "WUESTE"}
    End Function
    Public Overrides Function GetAngriffsFelder() As System.Drawing.Point()
        Return GetGeschuetzfeuer()
    End Function
    Public Overrides Function IsAttackField(ByVal X As Integer, ByVal Y As Integer) As Boolean
        Return True
    End Function
End Class
